dot_product_normalised

语法:

dot_product_normalised(x1, y1, x2, y2)


参数 描述
x1 第一个向量的x坐标。
y1 第一个向量的y坐标。
x2 第二个向量的x坐标。
y2 第二个向量的y坐标。


返回: Real(实数)


描述

点积是一个表示两个向量之间角关系的值,先把两个向量相乘,然后把结果相加得到。名称 "点积" 是从中心点 "·"产生,通常用于指定此操作 (另一个可替代名称 "标量积" 强调标量, 而不是矢量性质的结果)。

数学公式如下:


在二维平面中, a[x1,y1]和b[x2,2] 的点积就是 x1x2 + y1y2,即 dot_product 在 GameMaker Studio 2 的计算公式是:

a · b = (x1*x2)+(y1*y2);

单位化 点积是什么?对单位点积的修正方式使返回值进入-1 和-1 的范围 (有关更详细的信息, 请参阅单位向量) , 这在许多情况下特别有用, 特别是在处理照明和其他3d 功能。


例如:

var x1, y1, x2, y2;
x1 = lengthdir_x(1, image_angle);
y1 = lengthdir_y(1, image_angle);
x2 = o_Player.x - x;
y2 = o_Player.y - y;
if dot_product_normalised(x1, y1, x2, y2) > 0 seen=true else seen=false;

上面的代码使用实例图像角度创建一个向量, 然后获取玩家对象 "o _ player"的向量 。最后, 它计算这两个向量的点积, 如果它大于 0, 它将变量 "seen" 设置为 true, 如果它等于或小于 0, 它将其设置为 "false "。